home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ASMFLOW
-
-
-
- An Assembly Language Programmer's Tool
-
- for the IBM PC and compatibles
-
-
-
- Fully working Demo Version
- with condensed manual
-
- (C)Copyright Quantum Software 1988
-
- Quantum Software
- 19855 Stevens Creek Blvd, suite 154
- Cupertino, CA 95014
- (408) 244-6826
-
-
-
-
- INTRODUCTION
-
-
- ASMFLOW is a program for IBM PC (or compatible) assembly
- language programmers. The program is intended for novice to
- expert programmers. ASMFLOW generates flow charts, tree
- diagrams and provides a variety of other functions. All
- features are implemented by performing static source code
- analysis. In other words, only the source code is examined
- without actually running the target software.
-
-
- The major program features are:
-
- - Flow charts
- - Tree Diagrams
- - Approximate Machine Cycle Information
- - Stack Size determination
- - Recursion detection
- - CPU Register analysis
- - Procedural Cross-reference
- - Listings of Externals, non-Publics,
- Externals not used
- - Instruction Histograms
-
-
-
-
- Setup
-
-
- ASMFLOW.EXE runs by itself and needs no support files.
-
- All other files are for information only.
-
-
- Hard disk systems
-
- Copy ASMFLOW.EXE to the directory where you do assembly
- language work, or to a directory that is in your path.
-
- Floppy disk systems
-
- Copy ASMFLOW.EXE to a disk with your assembler on it or
- on to its own disk. If you use menu operation, then you
- can swap disks after the program starts.
-
-
- Operation
-
- ASMFLOW can be run in two modes:
-
- 1) menu operation (Chapter 2)
- 2) command line operation (Chapter 3)
-
- To start in menu mode:
-
- ASMFLOW
-
- To start in command line mode:
-
- ASMFLOW source
-
- where: source is the name of your assembly
- language source file
-
-
-
-
- MENU OPERATION
-
-
- Menu operation is automatically assumed if no filename
- is entered on the command line. You may optionally type
- any number of command line qualifiers or switches from
- the command line or a batch file.
-
- All setup features can be seen on the one setup menu.
- Once in the menu, operation is very simple. Move the
- highlight bar to any field, then edit it. There are
- three types of fields:
-
- 1) file names
- 2) numbers
- 3) multiple choice
-
- The bottom of the screen prompts you for the correct
- method for editing each type of field.
-
-
- Help while in the menu
-
- Press F1 at any time while in the setup menu to get
- context sensitive help. Press F2 to get a general
- help screen.
-
-
- Saving your setups
-
- After you have selected all the program options for a
- particular run you can save these setups in a file. To
- do this press F3. You will be prompted for the name of
- a batch file. If no file type is given, then .BAT is
- used. Once you have created the batch file, it can be
- used just the same as the ASMFLOW program. If you type
- in the name of the batch file with no file name
- parameter then the menu mode is started, with all your
- setups preset. If you enter a file name parameter then
- the program is run directly from the batch file with all
- your setups.
-
-
-
-
- Summary of the Setup Menu Options
-
- Input type
-
- ASM The file is a source file
- List The file contains a list of .ASM files
- Make The file is a Make File
-
-
- Input File
-
- This is the name of the input file.
-
-
- Output type
-
- Screen Output to the screen
- File Output to a file (named below)
-
-
- Output File
-
- This is the name of the output file, if FILE
- is selected above.
-
-
- Flow Charts
-
- Off No flow chart
- Single Single-spaced compact flow chart
- Double Double-spaced flow chart
- Charts Conventional flow chart diagram
-
-
- Comments
-
- No Comments not printed
- Yes Print comments in flow charts
-
-
- Tree Diagram
-
- Off No tree diagram
- Single Single-spaced tree diagram
- Double Double-spaced tree diagram
- Box Procedures Boxed in tree diagram
-
-
-
- Duplicates
-
- No No duplicates trees
- Yes Print all duplicate trees
-
-
- Macros
-
- No Macros ignored in trees
- Yes Treat macro calls like procedure calls
-
-
- Stack
-
- No Do not calculate stack depth
- Yes Calculate stack depth
-
-
- Nesting
-
- integer Max tree depth to display. For Boxed
- trees this is the level where the tree
- reverts to a single spaced tree.
- (Legal values: 2 - 16)
-
-
- Graphics Char set
-
- integer Graphical character set. See help
- for examples.
-
-
- Printer type
-
- integer Zero is the default value. Other values
- are reserved for printers requiring special
- configurations. Laser printers and Epson
- printers require no special configuration.
-
-
- Page length
-
- integer Number of lines on a printed page.
- Use 0 for continuous non-paged output.
-
-
- Page Width
-
- integer Width of a printed page. Use 80
- for the screen. Must be 80 - 132.
-
-
-
- Xref
-
- Off No cross-reference listings.
- Procedure List of all procedures that call a
- given procedure.
- Labels List of labels defined in a procedure
- Both Both procedures and labels
-
-
- Extrn
-
- No No Listings.
- Yes List of all Externals, externals not
- used, all publics and all items that
- are not public by type.
-
-
- Registers
-
- Off no register information
- I/O register inputs/outputs to each procedure
- All complete register summary for each procedure
-
-
- Instructions
-
- Off no instruction histogram
- Brief histogram based on 16 categories of
- instructions
- All histogram based on 35 categories of
- instructions and directives
-
- Clock cycles
-
- Off no clock cycle information
- 8088 calculate cycles for 8088/8087
- 80286 calculate cycles for 80286/287
- 80386 calculate cycles for 80386/387
- All calculate cycles for all 3 processor sets
-
-
- Warnings
-
- No no warnings
- Yes display programming style warnings
-
-
-
-
-
- COMMAND LINE OPERATION
-
-
- Command line operation is provided for several reasons.
- First, it can be run unattended from batch files.
- Second, it is the fastest method of operation. Finally,
- the program can be run as a child process with the
- output redirected, then read by the parent process.
- Menu operation is suggested for learning the features of
- the program and creating batch files by saving your
- setups.
-
-
- Although command line operation is somewhat confusing
- and may be difficult to learn, the following tips will
- help you understand how to use command line operation:
-
- o All switches must be preceeded by a forward slash (/)
- and may appear anywhere on the command line
-
- o Except as noted below, all switches consist of a
- single letter (case ignored) optionally followed by
- one or more digits
-
- o If a switch is not followed by a digit then the value
- of one is assumed
-
- o In general, a zero value causes less processing and no
- printing and higher numeric values causes more printing
-
- o A switch that consists of only a digit, sets all
- switches to that value (i.e. /0 sets all to zero)
-
- o If a switch is set to a value less than its minimum or
- greater than its maximum then it is set to the
- boundary value
-
- o Most switches have a mneumonic meaning, shown on the
- next page
-
-
-
- Command Line summary
-
-
- Command Syntax:
-
- ASMFLOW [[@|$]<source>] [<proc> [<proc>]...] [<optional switches>]
-
- switches:
-
- /A Approximate machine cycle info (0-4)
- /C Comments included in flow charts
- /D Duplicates in tree diagram
- /E Extrn and public listings
- /F Flow chart (0-3)
- /G Graphics char set (0-4)
- /H Help for command line operation
- /I Instruction breakdown (0-2)
- /K printer column width (80-132) [non mneumonic]
- /L Lines per page (0=non-paged, 10-66)
- /M expand Macros in tree diagram
- /N max Nest level for tree diagram (2-16)
- /P Printer type
- /Q Quiet (1 = quiet)
- /R Register usage info for procedures (0-2)
- /S Stack summary info
- /T Tree (0-3)
- /W Warnings
- /X Xref by procedure (0-6)
-
- See the menu choices in the previous section for
- a description of choices. Zero corresponds to the
- none or off condition.
-
-
-
- The source file
-
- The first parameter (source) is required. If no file
- extension is given then .ASM is assumed. Full path names and
- wild cards are allowed.
-
- If the source file name is preceeded by an at sign (@) then
- the file is assumed to be a file that contains a list of the
- files to process. No file extension is assumed for an @file.
- The filenames in the file can have full path names, but no
- wild cards. A file type of .ASM is assumed for each file in
- the list.
-
- If the source file name is preceeded by a dollar sign ($)
- then this file is assumed to be a MAKE file. In this case
- the make file is searched for each object (.OBJ) file
- dependancy that includes an .ASM file as the first dependant
- source.
-
- Procedure names
-
- Procedure names may be listed after the source file name. Up
- to ten procedures may be listed. If any procedures are
- listed, then information about only the listed procedures is
- displayed, otherwise all procedures are displayed.
-
-
-
- Compatibility Notes
-
- Code for 8086/88, 80186/88, 80286, 80386, 8087, 80287
- and 80387 processors is supported. Although there are
- no error messages, you should use proper assembly
- directives to enable code for anything other than
- 8086/87/88, especially 80386/387. Protected mode code
- is fully supported. Clock cycle and timing information
- is calculated only for 8088/87, 80286/287, 80386/387.
- Note that 8086 machine cycles are the same as 8088 except
- that 16-bit memory accesses are faster (4 or 5 cycles)
- and the pre-fetch queue is larger.
-
- Macros are supported, except that they are not expanded.
- Optionally, macros may be displayed as though they are
- CALLs in the tree diagram. Macros should not contain
- directives expected to affect program assembly, such as
- INCLUDE directives.
-
- REPT, IRP and IRPC directives are allowed, but the code
- is not expanded.
-
- Conditional assembly directives are allowed, except that
- none of the conditions are evaluated, thus all possible
- code branches are displayed.
-
- Conditional error directives are allowed, but no errors
- are produced.
-
- %OUT directives cause the line to be displayed, during
- both passes, just as in MASM.
-
- Include files are fully supported. For internal error
- message processing purposes these are limited to a
- nesting level of 3. Note that there may be as many
- non-nested include files as you like. The environment
- string 'SET INCLUDE=' is used just as it is in MASM.
-
- The INCLUDELIB assembly directive is accepted, but has no
- affect since this is used by the linker.
-
- All the MASM 5.x simplified segment directives are
- supported.
-
- Procedures may not be nested. Although MASM allows
- nesting of procedures this is not allowed. Each PROC
- directive must be followed by a matching ENDP directive.